
public class Person {            //Person是对象
    public String name;          //对象的属性
    public int age;




    //构造方法(特殊成员方法,必须与类名相同,无返回值类型,用来实例化对象,new的时候会被自动调用,可以改变参数进行重载)

    //右键 ->generate->constructor可以自动生成构造方法的代码(不能生成无参的构造方法)
    public Person(int age) {
        this.age = age;
    }


    //当我们没有写没有参数的构造方法时Java会帮我们提供一个隐式的无参的构造方法(若我们有写构造方法Java则不会提供)
    public Person(){
        this("bit",6);                        //this功能1：this()调用了其他的构造方法实例化参数,且必须在构造方法的第一行代码
        System.out.println("不带参数的构造方法被调用了");    //bit 6为引用
    }


    public Person(String name,int age){
        this.name = name;
        this.age = age;
        System.out.println("带有2个参数的构造方法被调用了");
    }


    //成员方法
    public void sleep() {
        System.out.println(this.name + "正在睡觉....");     //this功能2：this访问成员变量
    }
    public void eat(){
        System.out.println(this.name + "正在吃饭....");
    }


    public void func(){                                    //this功能3：this访问成员方法
        this.eat();
        this.sleep();
    }


    //自写的打印方法
    public void show(){
        System.out.println("姓名：" + this.name + " 年龄：" + this.age);
    }


    //官方打印方法：右键 -> generate -> toString()

    @Override                                    //注解(表示这个方法是重写的)
    public String toString() {
        return "Person{" +                       //打印格式可以修改
                "name='" + name + '\'' +
                ", age=" + age +
                '}'; //
    }
}